package com.ppblock.shirox.core;

/**
 * 认证域
 * @author yangjian
 * @since 17-12-5.
 */
public interface AuthorizationRealm {

	/**
	 * 默认域的名称
	 */
	String PRIMARY_REALM_NAME = "primaryRealm";

	/**
	 * 获取域的名称
	 * @return
     */
	String getName();

	/**
	 * 获取授权信息(获取角色和权限信息)
	 * @param authenticationInfo 身份凭证
	 * @return
	 */
	AuthorizationInfo doGetAuthorizationInfo(AuthenticationInfo authenticationInfo);

	/**
	 * 获取身份认证信息
	 * @param token
	 * @return
     */
	AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token);
}
